{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Demo 10: FISTA\n",
    "\n",
    "This demo shows how to make use of FISTA, another algorithm that makes use of a tvminimisation step but also converges quadratically, almost as fast as cgls."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define geometry"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "TIGRE parameters\n",
      "-----\n",
      "Geometry parameters\n",
      "Distance from source to detector (DSD) = 1536 mm\n",
      "Distance from source to origin (DSO)= 1000 mm\n",
      "-----\n",
      "Detector parameters\n",
      "Number of pixels (nDetector) = [128 128]\n",
      "Size of each pixel (dDetector) = [3.2 3.2] mm\n",
      "Total size of the detector (sDetector) = [409.6 409.6] mm\n",
      "-----\n",
      "Image parameters\n",
      "Number of voxels (nVoxel) = [64 64 64]\n",
      "Total size of the image (sVoxel) = [256 256 256] mm\n",
      "Size of each voxel (dVoxel) = [4. 4. 4.] mm\n",
      "-----\n",
      "Offset correction parameters\n",
      "Offset of image from origin (offOrigin) = [0 0 0] mm\n",
      "Offset of detector (offDetector) = [0 0] mm\n",
      "-----\n",
      "Auxillary parameters\n",
      "Samples per pixel of forward projection (accuracy) = 0.5\n",
      "-----\n",
      "Rotation of the Detector (rotDetector) = [0 0 0] rad\n"
     ]
    }
   ],
   "source": [
    "import tigre\n",
    "import numpy as np\n",
    "geo = tigre.geometry(mode='cone',default=True,high_quality=False)\n",
    "print(geo)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Set up data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from tigre.demos.Test_data import data_loader\n",
    "angles = np.linspace(0,2*np.pi,100)\n",
    "head = data_loader.load_head_phantom(geo.nVoxel)\n",
    "proj = tigre.Ax(head,geo,angles)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lets set up CGLS and OSSART for comparison"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CGLS Algorithm in progress.\n",
      "Esitmated time until completetion (s): 9.700507\n",
      "Average time taken for each iteration for CGLS:0.15033015(s)\n",
      "OSSART algorithm in progress.\n",
      "Esitmated time until completetion (s): 11.98729\n"
     ]
    }
   ],
   "source": [
    "import tigre.algorithms as algs\n",
    "imgCGLS = algs.cgls(proj,geo,angles,niter=20)\n",
    "imgOSSART = algs.ossart(proj,geo,angles,niter=20)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## FISTA"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "FISTA algorithm in progress.\n",
      "Esitmated time until completetion (s): 13.830748\n",
      "FISTA algorithm in progress.\n",
      "Esitmated time until completetion (s): 15.645154\n"
     ]
    }
   ],
   "source": [
    "# Of utmost importance to FISTA is the convergence constant, defined as the lipschitz\n",
    "# constant of the linear system Ax. In the algorithm it can be passed as the key word \n",
    "# 'hyper'\n",
    "\n",
    "#     :keyword hyper: (np.float64)\n",
    "#         hyper parameter proportional to the largest eigenvalue of the\n",
    "#         matrix A in the equations Ax-b and ATb.\n",
    "#         Empirical tests show, for the headphantom object:\n",
    "\n",
    "#         nVoxel = np.array([64,64,64]),      hyper (approx=) 2.e6\n",
    "#         nVoxel = np.array([512,512,512]),   hyper (approx=) 2.e4\n",
    "\n",
    "# from tigre.utilities.power_method import svd_power_method\n",
    "\n",
    "imgFISTA = algs.fista(proj,geo,angles,niter=75,hyper = 2.e6)\n",
    "\n",
    "# tweeking the tv parameters for the algorithm \n",
    "\n",
    "imgFISTA_hightv = algs.fista(proj,geo,angles,niter=75,hyper=2.e6,tviter=100,tvlambda=10)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plot results"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<tigre.utilities.plotimg.plotimg instance at 0x7f69325157a0>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tigre.plotimg(np.hstack((imgCGLS,imgOSSART)),slice=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAADKCAYAAAC11LviAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi40LCBodHRwOi8vbWF0cGxvdGxpYi5vcmcv7US4rQAAIABJREFUeJztnXe4ZFWVt98tICoimSa05CQ0cZDUgkgagtA4MgxBaIJfO0iYYQJB/3C+R2cU/R4VZhBoQGgYFMkgAgItyCCCdEumSZIaaDII6IyKs78/qtauX927Tp26dVPfYr3P00/vu+uEfc7ZdWqlvVbKORMEQRBMfN433gMIgiAIRoZ4oQdBEPQJ8UIPgiDoE+KFHgRB0CfECz0IgqBPiBd6EARBnxAv9CAIgj4hXuhBEAR9QrzQgyAI+oRFx/JkKaVYlhoEQTB0Xs05r1C3UUjoQRAECz/PdLNRvNCDIAj6hHihB0EQ9AnxQg+CIOgT4oUeBEHQJ3T1Qk8pLZ1Suiyl9EhKaV5KaduU0rIppZtSSo83/19mtAcbBEEQVNOthH4qcEPOeQNgU2AecBIwO+e8LjC7+XcQBEEwTqS6ikUppaWAe4G1smycUnoU2DHnvCCltDJwa855/ZpjRRx6EATB0Jmbc96ybqNuJPQ1gVeA81JK96SUzkkpLQFMyjkvaG7zIjCp97EGQRAEw6WbF/qiwBbAGTnnzYHfMcC80pTcXek7pTQjpTQnpTRnuIMNgiAIqunmhf4c8FzO+a7m35fReMG/1DS10Pz/ZW/nnPPMnPOW3agLQRAEQe/UvtBzzi8C81NKZh/fGXgYuAaY3uybDlw9KiMMgiAIuqLb5FzHAhellN4PPAkcTuPH4JKU0pE08gzsPzpDDIIgCLqhNsplRE8WUS5BEAS9MGJRLkEQBMEEIF7oQRAEfUK80IMgCPqEeKEHQRD0CfFCD4Ig6BPihR4EQdAnxAs9CIKgT4gXehAEQZ8QL/QgCII+IV7oQRAEfUK80IMgCPqEeKEHQRD0CfFCD4Ig6BPihR4EQdAndJsPfUxIKbX9D/C///u/4zWcShZZZBEA/vznP4/5uadMmTKoT1Mga9u7dzb2xRZbzN3u/vvvH5Fx9hs6J5WxTD/diYXlu2Pz833va8mK9j3pdm6CPz/7ZW7qMxrp+RMSehAEQZ8QL/QgCII+oauKRSmlp4G3gT8D7+act0wpLQv8CFgDeBrYP+f8Rs1xFg79tAZTiUZSHTJV9Pe//33pW2+99Up7hRVWANpVUVVBl156aQCWXHLJQeN89913S9+ii7asaDZ+Peabb74JwIsvvuiO80Mf+hAAH/7wh0vfgw8+WNp33HHHoPP86U9/co8VjDyjoa6rGe+///u/S3udddYBWnNTz+nNTWjNTx2nzU9vbkJrftrcBH9+2twEWGKJJQB46KGHSt8vf/nL0jaTj343JjgjXrHoUznnzeSgJwGzc87rArObfwdBEATjxFAk9C1zzq9K36PAjjnnBSmllYFbc87r1xxnQkjo3XLUUUeVtko2//M//wO0O01XXHFFAFZZZZXSp1LMBz7wAQA+9rGPlT6VaD7ykY8AvmSkUshrr71W2n/84x8BeOGFF0rfqquuCrRL7Q888EBpv/FGQ8maN29e6dNt7TqvvfZaxgK9R+Pt8Jto2Pz05ia05qfNTYCVVlqptE3K/eAHP1j6NthgA6DdaWlzE1rzc6mllip9Nj9ff/310mdzE2DBggUArLzyyqVP30umIer+jzzySNs1QLv2+5Of/ISxYAyd0SMqoWfgxpTS3JTSjGbfpJzzgmb7RWBSD4MMgiAIRohuwxY/kXN+PqW0InBTSukR/TDnnKuk7+YPwAzvsyAIgmDk6Mrk0rZDSv8CvAP8H8bY5GLqXF0860ixxRZblPbWW29d2uawUbVyo402Ku3VV18dgGWWWab0ffSjHwXgt7/9bem7+OKLS3uNNdYA2h1MzzzzzKD2O++8U/pMJVanpN4bO//kyZNLn91Dda6qc9auSe/ryy+/XNr33XcfAA8//HDpMwfVrFmzGGu8+PCxjA2382vctZ2/an3ASLHZZpuV9rbbbgu0OxNtLm244Yalb7XVVivtZZddFmifH2+99VZpX3rppYP2sfnx7LPPlr6nn366tG1+6v3wnOY6z80M6JkYAdZaa61B+xje3ITW/FRH6gUXXDBo/9FmBOfnyJhcUkpLpJSWtDawG/AgcA0wvbnZdODqXkYZBEEQjAy1EnpKaS3gyuafiwI/yDn/a0ppOeASYDXgGRphi69XHMaONehkVSvwPEZT8lp++eVL+6//+q8BePLJJ0vfpptuWtqf+cxnBu1vjh1oSSkahmXSxUsvvVT61KFj4Vfq+FEp2SR7k4ahde/U0aVagUk8KvmYM0sdUOaQhZaEtuWWLWFAHbXmYJs/f37pO/PMM4F2LeXVV4v/vEh6Y4Ver97DXrQ5z+mleNL4aGChg5/97GdLn0rGNj+nTZs2aF+dm7/73e9K2+anapoq8ZozU7Uxc5rr3FWp3iRivV/mAFWpW52q9ry0T52zNj9VO/2Lv/gLANZfv2UU+MMf/lDazz33HABnnXVW6bNt9Ts2VnNT74enzXUxN7uS0Gtt6DnnJ4FNnf7XgJ3r9g+CIAjGhlgpGgRB0CcM2Sk6rJONURy6xmrXJdA69NBDgfa4WHPSTJ8+vfSp+cUcQurg1FhvcwJpfLinsmvcrG2rY1eTjamrehzPSaxqp6myekzPDKP7mzqoKq/GMX/yk58E2tV0Mwd88YtfLH3mBIaWuemMM85gYWU0EyYNxO5xnZp9yCGHlLbND5ubAz+3+ammMJuf3tyE+u+GPXdvtaWaP3RVsd1HnXN2nXpunX+2rfZ581OfkcXO63zfYYcdStu+L5MmtaKpjznmGKB9LYg6Ws10ON5UrFQf8ZWiQRAEwUJMvNCDIAj6hPekyUWX7D///PMAHHbYYYO2u/7660tbo1NsKbSqoro82tTFoSQoMnVU1XD1+nv7eH3a9iI0PJOLmpusrfdQj2kRBxoDbWqtLQsHmDGjtZbMImo03v2UU04ZdB39jBflUGXysPmpMeUHH3zwoOPccMMNpW3RKToPbc5pn0ZYeKq9fm5zUee59en88MxVXl/Vu8bOqXNSsXPq/fJMmO9///tL2+anmlxs/pnpBdoTj6277roAfPOb33THMc6EySUIguC9xISX0D3p01uZphK4OvmOPvpoAG6//fbSd+uttwKw3HLLlT6N1bbjq5SimEShEoe3qtOT2jSm3HMcqZRi51HJRDHJSiUsixPWcXjOOT23l3hIx+GlWd1///0HtXV1qq3+++53v+uOvR/wHNjgOxnVAW9a0he+8IXSZ2mLb7vtttKnaw5sDuixq+Znp8/rVrd6zvuq/Q2V+g2dP7ZPVRUta3uJ2qrWB9g+Ns+g5Ujdb7/9St8BBxxQ2uZItVXbAKeeeqp7/HEgJPQgCIL3EvFCD4Ig6BMmpMllKDHDBx54INAeb7rddtuV9o033gi0x5RbDLbGiXumDm9JveKZNdR0o8e0bTWmV9VnU8P1PN61e442bym85zzVtvbpddiYNA7dcrBrMjNNF7DJJpsA7WYFU2s18dPXv/71QWOvY7yTc3l0W/HK5ia0EmVBKxHczTffXPpseb2mqFDTofdczSxSZxpUPGe456jvJUFe1f3o5RnaPnpunftmWtTv9eabbw60O+833njj0j7iiCOAVnI9aF9P8Y1vfKPjmDqNUxnX5FxBEATBxCBe6EEQBH1CtwUuFirqVJbPfe5zpW0mDFWt7rrrrtI2lUhVK4v/VfOIFz1Qpe4N3E7Po+YLPb5FAqga7WWk0/0tskEjY/SYdn5dHj3weAOvw1OzNYrG2jpO69Ni0prN8d577wXg7LPPLn3HH3880G5i6oXxNq94dDs/NepHzQB333030B4dYmZAzRToxYx7EUlelIluW2U+sfkzlPJqXhy6F7uuY/K+O3X55QeOcWDbvieLL7546bP5qXNTyy9aaooTTjih9Gl2014Y6/kZEnoQBEGfMKGconVJjf7mb/4GaJced999d6A9J7TlSobWr7ruY9KFrqBUadl+/VVy1c9tP5UyPAeVHt8kZt1HnbImeeu12/46DpV27JjeCjtvvNCSKFSy8eL6VQKzY2mBak2AtM8++wDt9/jRRx8FWtI7tBcrXojif7uizlGvcfl2v3fdddfSp6tCdX4a3poCnQs2bzynqGpj3lyoKsTdCT13nePP0wTqztOtBF/3/tLv29tvvw20r5fYd999S9vmp81NaJ+ftt9pp53W8ZyjRDhFgyAI3kvECz0IgqBP6NopmlJaBJgDPJ9z/nRKaU3gYmA5YC5wSM75j52O4eE5bKpMKt06ZLbffvvSZ8ujf/WrX5U+NSGYucCLv61KQGTmjyqTjGdesXOqiugl6tJjqtmjk9pZFZtuzlB17Njxq3K1m/nGc6Tq8fW5WVkzdfJp/O9VV10FtJfu23PPPQGYPXv2oHNDK7mSqrzjQbdxxN3GTQNMnToVaF8bYY5QaD1rzzFYFVNu29aZfqocpJ3G7KUDqCvJ553Tc76DH2TgmXTqEn55++j3xr63WjLP5ia0zC977LFH6bvllltK275nmphuvOfnQIYiof8dME/+PgX4Ts55HeAN4MiRHFgQBEEwNLpyiqaUJgOzgH8F/gHYG3gFWCnn/G5KaVvgX3LOf1lznBH3wB533HGlbaGHKvk+8cQTQHv1Hw3tM8ejl0hLpVRPWq9Kf+qlA/UkGy/szHN0QUuyVqndttWwRS3Ea1qBF0Km5/FCGKvG4SXnMsm6qnKSOZN0laMV+VUH1Jw5c0rbwhnPOeccRpNuV3X2wrHHHlvauiLW7vdjjz1W+sxhBy1JsM4Z7UmknsRaJZV7Fa+8+VmXsKvOAWraoDd3q/apc6B2m0ba21fnrq7QNae8rnj25qeG2g53fg5h/o2oU/S7wAmAPYXlgDdzzqa3Pwes6u0YBEEQjA21L/SU0qeBl3POc3s5QUppRkppTkppTv3WQRAEQa904xSdCuyTUtoT+ADwEeBUYOmU0qJNKX0y8Ly3c855JjATejO5eOq+Fsq1Si3QMrlo4ij7vC6uWp2EpvLWqYiqeqkT0I7lxYd7qqgeU52ilmBI22pe8Ry6Xr51b/Wfqp2e6ajq2u38+rldh6q3+rnFp6vz9qmnngJg7733Ln2ajMru7frrr1/6VP0dKVPJcPf3VHqLwX/11VdLnyZ8MuexrvrUuWL3s271sVd9SLE5o/H/ekzPFKP3wzt/p1z/dWOuC3bwnMAD2wPPWfV96mRO0rGrKdaewdNPP1369tprr9I2B74GGVgVJDWfDYWRNvXVSug555NzzpNzzmsABwA/yzkfDNwCWKb46cDVIzqyIAiCYEgMJw79ROAfUkpP0LCpnzsyQwqCIAh6YUjJuXLOtwK3NttPAlsN9YTdqMqqVnpq2tprr13aamKwyIkLL7yw9FmBXFXnNALDy+9samNVQeeB20G7ymwqrppPbBxqMlHsOtVUoftbZI5nGtJze9fmqaK6j6feVsWh2zi8eHrPtKPbPvvss6XPogs0XcAuu+xS2r/85S8B+OQnP1n61OTSi6raKVpiKDn26xJHWUk+fX6Wixta81OftVdQvK6EXN3yeTtOtyaRqs+9ItK6nVdezythWGXu8UwuVeaXgX1V6zoGnlu3rVpfMn/+fKA9GkvNZjvvvDMAd955Z+nbcccdgd5NLt4zrIv66USsFA2CIOgTxjx97sBfGi8xUNWKMkOlHXWKWhUc7bNUmVXFc03C19h0k6Krivya5OUl14KW5KXn9CQf/dwk5iqpy8akjkUvvrdTYd+B12F4lZWqtBP7XI/prVLUY3orZ02i0YK8KqGbA2q46XUVb5XrUFZ4evt4+2+66aZAu/ahTlHrV0nQk4LrJGMvJr2uzyvEPBRnZbcpd5U6TaMuXt5zug8cz8AxeRJ8naZg43zkkUdKn85Pk9CtiDxUa7Ld0mn+9aKFhoQeBEHQJ8QLPQiCoE8Yt4pFXjWUqqX0hlW5mTZtWun7r//6r9K2SkTmgFRULVRzgJc4SM0vho7TyzPuqW5qlvCcRXVxs15xXu+cej1VFZEG7uMVvdbrrFpibvt7cf2eiUDbXqz1HXfcUfosphdaawq8NQPDZShOT88M6GFzE1rz8xe/+EXp0+Rw3vz0nodnYqhKxNZpmX6d87QXs9NQ8L7XQxlTt45Dz5Sm5667Ti+IQOenBWNorv/RmJ/DIST0IAiCPiFe6EEQBH3CuJWgM9ODF39bNyZVX2+//fbSfuWVVwB4/vlWFgKvQK1GpxhePnPdri5vu6em6/7WN5R81Kr62f3yyol5Mb36eVUhXW8fL6Zcsfvkla2re26eeqxmoR122GHQPmeddVZpaxa8kS4DVpUF06iLvFIsTtli6aE98srmZ9U99gp1eyUK68xAdQxn/6rIlk7l5uqyKfaSq13x4u09E2aducerfQCt+anHPPfcxnrKTTbZpPT9+7//e/0FDJ0oQRcEQfBeYtycoip9dkIl0iOPbNTQUOfalClTSvu6664D2mNDPSdfnfPVK8hcl7RIsc89x6JKEaoV2OpSdTYqnVbYVjmGPAndG5u3qlPvoTrxvFhuL5mUd05PAtOkZloc2Y6pVX2qVtkOlbrKN3XPV7FneMQRRwzq23DDDUvfM888U9qeI61uNae3PqAXCdubP3XStqeJDkXKrXPO9lJE2uZHlZO42+RtdftodSObn/rusvoDw41HHylCQg+CIOgT4oUeBEHQJ4ybyaVbDj744NK25FtapFU55phjgPY84lbAuCq+20voYw6/umXWqu55JgjPlOE5NfX4VSqkmZm8dAJVqqpnvjHTjpoyPEeqjkPxzuldm2LH8hx6ehwtQWfP+GMf+1jp00RJw2EkAwEOOuggoN1ha/NUOfroo0vbnouakDwThWeiqjMHVZnfvM/rnJGdyiZWzTkvnYBnGvKSd1WZ+QxvDcZQTCoeQ3HEzp3bqPGjDtANNtgAGLm5OVxCQg+CIOgTFnoJXVOuqrTeCXVkWHURDT/ypJy6kCf93I7lSeXQkj7qilGrRGJSW12opPbZsaqSgHlScF1CJhtTVXIuz5lt2oM6+3Qf01RMW4KWFqXbqVZgYX66evSaa65xxzyQoaTCHS7mKFtzzTW7HpPNBb1ebXtO5G6dfHUhhHUrmr3vQZ2Ds9uQz6EUm65z3nabNG0oYZ7eam7F+jUE1ebnj3/8447HVkZzfoaEHgRB0CfECz0IgqBPqDW5pJQ+ANwGLN7c/rKc81dSSmsCF9MoPzcXOCTnPHgJZvVxu+rTijU///nPOx7z8ssvB2CrrVqFlMzxpKYMr+qPF2ur6pqX0Msr2Awt1cz7vCo3uaeqerHzQ3FqeatkzTyiDlM1hXjmE8/RqtfhVYLxTDOa29y2VQe2ntNMGZZbHGCnnXYaNCbNXT1wPL1SNze1PXXqVABuu+22jse84oorSnvrrbcedJw6J2Jd/LcXT19nHvFWTnrmmToTQbcFnatMHnZ8nT9q9rDvrpd8qyrAoVNCsCqHrld03VufsGDBgtJn8/NTn/qUe22jMT870Y2E/gdgp5zzpsBmwO4ppW2AU4Dv5JzXAd4Ajhy1UQZBEAS11L7Qc4N3mn8u1vyXgZ2Ay5r9s4B9R2WEQRAEQVd0FeWSUlqEhlllHeB04DfAmzln06ufA1bt8lht/yue6eDJJ58sbS82VTFVSPMVmznByy2u41DziJebXNU5Mw3ocTRixa5D97FtNQJHzQ1GVcIvT+309vEiXjRVgu1vkRbQfp1mUqkqPG3X7iX50nN7arqaVGxsXqk6aEUI6efdposYCt2a/qoiOWxJf1XKBuOFF14o7UmTJgHwzjvvuNt6tQK8gs/dpoEYiqmjqqxip/N0m4KgKlrKzu/Nd6UusVxdDL4XteONryrW3yuwbvPTG+940JVTNOf855zzZsBkYCtgg25PkFKakVKak1KaU791EARB0CtDikPPOb+ZUroF2BZYOqW0aFNKnww8X7HPTGAmNNLndkq1ar+2KmE//PDDpX3hhRcC7SlVPWxFF8Cqqw5WHDQ+3KQQT/qvign3HJx6TLsO3d+LXde2aRJVjiE7p+fgUk1BJW9rq/TopQbWY3oFsL3Yd4+qVa7eeWwcet/VOWvrB1QC0+pU22+/PeA7nYZCnZTrsdJKK5X2vHnzADj//PNL38yZMzvuf8899wDt81yfuz0vr0pWnYOybsWpJ1l7seuKt6K5ytHqfe4FEegx7dqqJHhP2vZixquczAOPU+UU9ZzAnha+5JJLDroOS5kM8IlPfKK0hzs/h0qthJ5SWiGltHSz/UFgV2AecAuwX3Oz6cDVozXIIAiCoJ5uJPSVgVlNO/r7gEtyztemlB4GLk4pfQ24Bzh3FMcZBEEQ1FD7Qs853w9s7vQ/ScOePiQGOkC8+NsXX3yx9Gkc+j//8z8DrWLQAK+//npp77HHHkB7RSPLoa7OyG6XFVeZEDx1T9uWAEv3t/NXxYybSUYdkHpOM4F4S/KrHHZ2fnW+2vG9OHI9flV8rz2/blMMQOfUAG+//TYe66+//qBzq8pe5yAfKlWmMC/eWeenVbE58cQTS5+p32+88Ubps7kJrflrcxPa70Mnc0FVn2fK9NZTeI7rukLHdcvnuzVbVZnrvLQX3nvBm4d1ybXqKk3V5e3XOWf7WwFzaM1tL41Hr3Sb5sEjVooGQRD0CfFCD4Ig6BPGPNuiqTWd8jqrqqHmEyvp9dhjj7n7XXTRRUB7VkZTiTX/95VXXlnalsfYW5ZukRbQrhJ38rrr/l7Gwaoyal4ZN8VUuzpzkWLj9CJavFh83adqGbW3zN/L1d5t2gKN6dV97H6vscYapU8jibotEt1tZru6pfdVJQzvvvtuoD1v++OPPz5o/wsuuKC0Dz30UKC9KLZGTlx11VVAe3k+M5tVmfnMbOJFqVStbfDMNFWZOwceS89dlxWyznTgxdh7+fjr8rJ7ZlOdp3WmQa9MpGcm0nfB6quvPmi7008/fdA+VdcR2RaDIAgCl4U+H7rGdK6zzjpAqzArtBffvemmm4D26jH77tvISPCVr3yl9C2zzDKlbcd65ZVXSp/9UquErvHdJj2oVK8Je2xV4B133FH6Pv/5zwPt0rJKQCapVklTntRvVElYnXJGV62C9ZzVnnNWnZImHVZJud4KPdNUVELXe2PPQ1dTaiWgbuN7u43V7uU40ErOZXMTWvNCi17ffPPNpW3Xsffee5e+r371q6W93HLLAbDUUkuVPnP+633V74E5YFUitfn70ksvlT6dp7fffjvQ7pz1krJ5DuOqOHSvz3Mse1RJ9V5su3esuu+TN/e941Ql0LN7o+8Km59DmZvjnZwrCIIgmADECz0IgqBPGHOTy0D1qU4N22+//Urb1FbdZ8sttyztN998E4DPfe5zpW/GjBlAe5yoxpGa+qSxo+Z8+853vlN7Pd1ijhRVt9SMY+esUitNjbcYd2iZftRk4plsvJhzVU8955f2eQm0tM8rxF2XvMtMNlVJwszs8OCDD3YcZy/UmWHqtlU++9nPAnDLLbcM+kxNfzY3AQ444AAAvvjFL5Y+vZ8rr7wy0F542EwI6hg+9dRTO46tW9TJp9dr3xkvuZviJavy0glUmRM9Z6Vin3vrGOrK53lx5J4TV/fR69Hje6bYhx56qG3fkWA4JpmQ0IMgCPqENNpFdNtOllJXJ5s/f35pa9Ibk0Qt/SjAddddV9prr7020O6M+s1vfgPAiiuuWPpUqjcHhoZC2q/yRhttVPrmzGkli7z66qGnrTHnrobhqaRgKyN//etflz7PWVm3as8LuaoLzVLtxSTAKqeo3Ztll1229JmErlqOt2JRk2954ZOa9GqttdYC4J/+6Z9K30EHHVTaZ5xxBuOFFi63+anPyubnDTfcUPq0iPTzzzfy2Glq6OWXX760zcGm4Y82P1VitDBeaCWks5DHoWCOXWjdd2g9N3X43n///UB12KKHF8roaXBV7yK7Zm/ltldRCFoarc5t75w6dtMWtU+ldZuf+ixPOukkAPbff//Sd+aZZ7rXMUzm5py3rNsoJPQgCII+IV7oQRAEfcJCZXL58pe/DLQ7P3SlqMXdqhNHVVVT+bWYsDktnn766dKnsc0777wz0J5IyZxZP/vZz0qfxZEDzJo1C+h+taKiObC1io05cr3VgdBSLdUhU5dUqZNa6+VqB3/FqudE8hJ+1RWr9tR0fRZqQth2220BOPvsswedB1qmhdFcdaecfPLJpa33xkwdutLT5qeapTRu31aI2tyEdjOh3RNNTGfzYvPNW3nytDD1YYcdBrSvSB2p+XnIIYeUPksyp3NGn0Gn+G+lzuSi+3trMDzToVd5q1Ox6IHn8cya6lTdYINGXR8r8g1w7rnnDtpOTbLDSbQ1gDC5BEEQvJeIF3oQBEGfMO4ml8MPP7y0vSLAGndt8blqclE13qIHdMm0JeXS5c9e6S9ViU3l1ThijbyxKIajjjpq0Hh75ac//SkA3/ve90rfCiusUNovv/wyAKuttlrps9jmKhVRzTOGRQrULbP24m+hZaqpMskYur89Q02QZkvZ11tvvdK33XbblbaZMjT3uJoTeqEX9dfmZ1WBarvfGqFj81PNCnodZjrUearLyS0iSyMszMShkUKbbrppaZt5ROeMxrkPh+uvv760rbyePkuNse9UAFtNhPp9s+dRlS/di+ayvqGkmzD0WaoZz74vOnaN+jEzoJUQhFYqhZGam1A5P8PkEgRB8F6idqVoSumjwAXAJCADM3POp6aUlgV+BKwBPA3sn3N+o+o40HBg/tVf/RXQknjVgWlFoHUlp8Y2P/HEE0C7A0o/t9WF+ktv0oNKlHYcaDn3NE7dfsE1pleP2YvkUycd3njjjQBsttlmpU8LZJtEo9KDl0hLpUJz9GoSpzq8VKYqPZgUozHBtq3eY5XaLEZX467tfmoRb43vNWeorjkYLl6FJ0Od3uqs3nHHHQH44Q9/WPp0zDbS3Z0pAAAZ7klEQVT/dE7Z/FTHoTpI7X6pA1yl16eeegpol2Jtfqp0ee2115a2SfN6Hd1SJx3Onj27tDfeeGOgPQGVfgdNY/HWS2ifzmP7DtY5Ur30uJ5DFvyi6ra/rk7ec889S9sCJ/Q4qs3b/Pz+979f+lQjGg5Vhau9zzvRjYT+LvCPOecNgW2Ao1NKGwInAbNzzusCs5t/B0EQBONE7Qs957wg5/zrZvttYB6wKjANmNXcbBaw72gNMgiCIKhnSMm5Ukpr0CgYfRcwKedsyZVfpGGS6cirr75anCoWc67Lmw888ECgfZm9xuqaKmvOUWiPH/cSYJnKpDnQNSbd4thV/TWTj5ov1Dl7zjnnAO1xwLoUXdVzw8ak5g8145gqq6aMe++9t7RN5Vanp5d8S49px1LnqI1Dr7cu77o6juyYaiIwU4veL02bYKYrjX0//vjjgXbTjBb8NnODmtdGCk99tXhiaC/4bGYiXdqt6RkseZiO056V3mM1Mdj5VV3XeWHOfXU82rF07nvz87zzzit9t956K9Aey29VvRS9HzoOe9b6LG1+PfDAA6VPzUme89ibH3pOM01VJa7zzCt1Oda9cdjYNZWBmq1sfh533HGlz5ufagrTmggjxXACVbp+oaeUPgxcDvx9zvmtATc3Vy0aSinNAGb0PMIgCIKgK7qKckkpLUbjZX5RzvmKZvdLKaWVm5+vDLzs7Ztznplz3rKbkJsgCIKgd7qJcknAucC8nPO35aNrgOnAN5r/16YgXHTRRYuJw6IC7rrrrvK5ZUFUlea+++4rbYtTtphs8HM5a3SBqm6GxgybOUHNChZloKhaaV7wH//4x6XP8mJDawm7xa0CHHPMMUC7OUavzdRsVSHVfGLqoKdKVmWcs369B6ZC6j1WM46pxerp17ZX7NrGtskmm5Q+NZvZNWlEgcXvqglBoylM9a/KUz7SaJSTRuPYdWiJMb0fZnLR5eCvvfYa0B4zrs/I9veKd0PLFKPP0p67pghQzDyjESc/+clPgFYZRmhPr7DVVlsBLfMXtCLNoDU/dQ2G4RWoHtg2vNzlem02l/S7rN9h29YrIq3j0Hto49B7bIW8LWPkwHHstttuQPuaAX1XWCoQNa/VZZoca7oxuUwFDgEeSCmZUfdLNF7kl6SUjgSeAfav2D8IgiAYA8Z0pehiiy2WzTlpv4a68tEkI5X+vHhn7dNfcpN81FFqziJ1QOnx7RdepSmTKNWJoxKt7WOSGLQ7XSdPngy0O7Usbld/8TXO3GJxvYK8io7d9lHtwnM2qeRi11lXtUWv3Tu+Sja2lkAlG43L3mabbYB2B5PdT80Pf/HFF5e2OaZVatf7NdKohG5zE1ox51qM3MuxrZKitVVaVqne7oM+S9UAvWRntq2XZx5az1r77Dy2PgPa55+tVH300Ufdz23O6nfMrreqSLSN00v4pmP3vteew1/xijerBK7Y/Nx+++1Ln60WVw384x//eGmb41qfm76fLr30UqB9HYJJ7aM5N5vEStEgCIL3EvFCD4Ig6BPGtEj0u+++W5IQmdNLY49NVdWkRd6SWFXX1FRiJghViczZqOYANReYaq+JuLQcnaHmFcsJrQ5MTTJlJcrUgWXqpKpmqpaaaUjjWlUFHXiN0FI39X7omOzeeEV8NTbdSx2gJgS9x7afjs3usare6iQ2E4KVA4TW/VTnqffcx0CVBdod7XpvzHyn16ZOMS+dgN1Drwg4tNIZaMI4Pb89DzPdQSsPupqy9LnZnNTnYp9rSgWdk/bcdB81v9i86hRbPhCba17xZv0ue2ZV3ccrZ6hmQG+9hO5j3w393tszmjZtWulTJ66ZfPWdZEnioPXd1HOO1fzslpDQgyAI+oQxT59rkp/9Gl9yySXlc1s1qlWKNDmO/aqrJKdJguyXXn/JTZpSaUalAwuj9FJ3qhSi0pYdX6X6Y489dtD+GsZnq+10JZ6uJPRWYCqeduLt41WC8dLf6naeM0qPqZKP7adOK5MONZGWOkCtrWM3R532qYRm4az6fLullypGej/0uZujVlc060pRu2Z1lNozVmnaq9ak2pY+I7sP6mj37rveLy8plkn1uvJRmTJlCtBapTxwTKaZ6b2pK0zujdPTYrzn4kn10Lq3XqKtqmLVtq1ql96qcG2bdqHvFz2+jVlDrcdqfhJO0SAIgvcW8UIPgiDoE8a9YtHee+9d2qbeXHnlle7+J5xwAgC77rpr6VNV2Bwg6mwydV/jfNVBZfuoWmmqnzoT1Wllsboaz/rzn//cHfNAVKW13PB6flU7PdVMVXszhagarGM204FXXUjVU2/Fosbd65jMFKNjs+emCcx0Xtmx9L6bmUZNLmqO0mRn44nNT1W9vfl50kmt7NEWl69OYHXOWdvuAbSvWbDnqvPYmx/6rC3YQM1eloTOknR1gzp8dYWp4eXLV7x1DLZtVXFmDz2+Z4a05+FVKdJz6ThsnnurdrWt81jHbKaYM888s+PYR4kwuQRBELyXiBd6EARBnzBuJheLBVW1c+211wbaVSdVdS0OVD3Lhx56aGmbp1+Paaqbmio0vneXXXYB2gu/moqnx1H111Sz1VdfvfRp4qlOaGFfXVasy7MNL8+5V6bLi03Xtt5PM3tURf2YCaRK5bVxeM/IS46k2+o47Zy6j5dHXukxOmDIqBnQ1G991l4CNb02i2456KCDSp/eY0tCVWX2svm58847lz6bn3pfNZmVzU81Idj82muvvfwLddD5afHragqzZ+CVg6vCTEie6U6per62nxfrXxUPP3A7PWZVqbuBEXgDz+nNz14Kj/dImFyCIAjeS4y7U1QlU5NIqmKx7dd2gw02KH2aftVWaGr6U5OCNPmSStsmgenqQJMoNEZVY7Htl/zqq1sZg70kQBqv7HHAAQeUtkkNVavpbHz6uUmFXuwwtLQSHbtJH1UJvWxbfQbqIDWJRPc3qVD7vNWnnnNWxzZr1ixGE0+a8gptKxa7bJoctF+noZrk+uuvD7Q7KHWFpjnTVUK380DLwanOOXvGKoGrhG79ekyrxjN16tTSp879uvlpFcQ8KVg1CnV22z3Wcdr80bUcntZX5eC056X32D5Xp7qnIeo+XpIwz1HrOfRh5Oanp4nUaTk555DQgyAI3kvECz0IgqBPGNPkXB5aPNecL2oSUZVprbXWAmDdddctfVaAGFrqlxcj/eqrr5Y+Na+Y6qaqv41JY4MVU900jlxNHbbU+rDDDit9nrrvFbvWsamqbMvAb7zxxtJn8cxVlW8Mz6xWtdTd1M6qhF+dKibpPqpSezHL9rmqtEOhF2eUt61natF7aGYNfS5qCrNtNa+7FSFWk5yaILyix5r8zXNc273Vc2vMuOes/MxnPgO0mzrUzGfzs8oZaWZKDQ4w049VD4P2FAU33XQT4CfDq3pWXn9dQWjver1nqX2eec1LUVD1ebcMt8rWcMzgIaEHQRD0CfFCD4Ig6BO6KRL9feDTwMs55ynNvmWBHwFrAE8D++ec36g6Rie8aAuN2lCTjKmdl112WelTVdjUWlX3Tf3RPj2+7VMXq60RB2biUO++juOWW24ZdJ2eGqUZCe0+aN8VV1xR2hbbbIVuoWU28fKV6zk9FVJNHbq/3WNV0/V+ecu4vZJpamLwMgGaKayqhFgdvaildREt3rHt2qrSK9h98lID6H2rMnEZnjlBj+mVRfQiovR+mhlRn3W3cxNaphad+zY/Nf2BpsCwCDQvW6KX0VTRa/PmTzdjHoj3rL3IF6VqfUC3jFTkYC/rLrqR0M8Hdh/QdxIwO+e8LjC7+XcQBEEwjtRK6Dnn21JKawzongbs2GzPAm4FThzuYOzXUH8VdZWaVQepclYOPA60fo2rfpW9OFCToFRKUKepF6ut2P7Tp08vfQ888ADQHvurkpqNyYt3h9YKPv2ltrY6xzztRKUUW2171llnlT6LN4bWvfMcg9DSSnScdh1VDiRvpaBX1Hi0qZPMO+GtfIXWvdfVy3aPq3KXewmsvPlXh+5j99hLzqZon62yvv/++0vfvffeO2jMnnai12a5/qE1J721DVXXZduqxjtz5szStvmpx7QxeesdtK3n9GoFeJqTVxR7tPEk8F4k/V6jXCblnBc02y8Ck6o2TCnNAGb0eJ4gCIKgS4Ydtphzzt4KUPl8JjAT/JWiQRAEwcjQ6wv9pZTSyjnnBSmllYGXa/foAjOvqBNEE1hZ8WZVXzX22cwFXlmqqhzI5tTyVDc1NXhx2V4uZWilDNBxmKlFVVU1W9g+XqFbaBX01Rh8c1qpiqjYNau5wBxURx55ZOlTB6i3zFqxY+n1GlXmE2/JtXHfffe5+yxsqFlLn4vNT694c9X98NR4b+2Ensc7ppdUzUscps9KgwzsczWz6HO3uejto8/SUhVAq+i6js320bF7y/x1n8MPP3zQdXrJuTwTZB11+2ifmUonCr0aMK8BzEA8Hbi6w7ZBEATBGNBN2OIPaThAl08pPQd8BfgGcElK6UjgGWD/XgegoV1WMForpajE4Ek2KtFaeJVX1LhqtaMnPXgrvfRza6tEceGFF5b25z//+UH7Gyrpn3322aU9Y0bDzaBagR5/1VVXHXQddYl97Fx6D03C9hJMQX0VJBuT52zyHH/6uVcVStPSzpkzxx3TaFK34tRC/jRUVuenVwHK8O679ldV8PGk8V6cc/Z90Lmpkq83Zh3TueeeC7RrczY/dbwrrLDCoLErXvis58D0ipkrdeP1EnopnlPW+17rdva9Gy06zb9ewha7iXI5sOKjnSv6gyAIgnEgVooGQRD0CeOenEtV0S222AJoNzWos8mKM1siK2h36Bl18bdqbvBigs3JqCsoPWeRrsrcZJNNBu2vJghL2KTXo/ziF78YdBwvj7ler5lC9Dy6j+E5gTzzB/ir8rx4fG81pR5T1w945h075+WXXz7os5GkTm2tU3Vtfmy++ealT6/HCjFrvn1bTalzW8/jxe17FaTqnltdznB7VlqFSE2ctv96661X+izwQLnzzjtLe+ONNx40dsVMJd7nVbnLvdh1z4zoFYGuMkt5z9W29fKqV52nqmD9SOGZTb370S0hoQdBEPQJ8UIPgiDoExYqk4tFOey2227utlbSS3ObqxpnpgH1kJsapn1eRIunrnnmC/1cTRW6fNrK6t1xxx2lryqqxHjooYcA2GyzzUqfl7BJzR9eJICqkzZO3c5T5/R+eGkPvG31uXmx6Wqu8o45Vkv+e1FbdR+7d3Pnzi19u+/eSm1kz0gjPV5//XWgfU7VJYTy+lQN99I4ePPYMyForL/mLjdTimdmU2xuQsv05I0XOpcbVDwTVF1qhrrc5p4pxRuH930A34wzVoxUQq+Q0IMgCPqEcZfQFavaYsmNoF2yffDBB4FW5SLwkyKpZG0SvP5Sq0TirbI0x6NK//oLap8vtdRS7nV4KUrrWGWVVQadU6Vgk0Q8yaiuUK4nyel99RxLVdKS5wA157COzZMuq1b4evRSkWg08SoKQet+PProo6XPqhc9/vjj7j527VWSoD03T2usiuW2z3Wee4m0br31VvecnbBgBD1nlYRu4/Dm3FASkHnaaV0lIB2Ttz7Ai++vq1jl0Ut8+FgREnoQBEGfEC/0IAiCPmGhMrkcddRRQLtJ5Lbbbivtb37zm0B7BRZdLm5OETXZ2LFUxffMLxpT7ql46nDRWF5j2rRppW1OqGeeeab01almXlUXzyziLcn3nMB6LK0446md3v5etRzt9+LhFc+R6uVDr2JhU2X/9m//trR1fppj8Wtf+1rps/lxzz33lD5vnYPeD/3c7rfO07pqP/a5mhtt/u6zzz6lT8f07LPPAvX3Wk1/XgqCuiX5HrqPHd+LMwe/WlPdMe3eemOrMid6BeM9Fra5qYSEHgRB0CfECz0IgqBPSGOpPngFLrbbbrvStlJWmnFQczFvvfXWQLvKo0uy//M//xPwo2SqVMBOZgk103iRIJbDfOA558+fD/QWUaDxzHvssUdpe+XubOxVscn2ube0v8qkYuYTNSt4xXt1PF6hbT2+3VvtM7OURS4trNj83HDDDUufzkkzPX384x8ftK+mcfjBD35Q2maSqYoUMfR+2fOoirv2infbfVfz1nPPPVfavURj2VoQjcX31kMMxTzixYzXZTy1bXU7L3rFm+dVZk07luZAX4jm59yc85Z1G4WEHgRB0CeMu1N0ypQppW2SuTrc9txzz9I2B6n+qk6dOrW0TXKqq2zioY49kz6rnEF2LC1WrU5VdYZ24pRTTintb33rW0B1HnIbi0p11q7Ku+1J43XVcrxVg15Rbc+pqpKaxdVDS1JUjeeFF14YdJ6FEZufVXnqd911V6A9gZXN32222WZQH7TuXVWR6E4x5zqPvbhrfdY2J3VudluAGuDf/u3fAPj2t79d+jwp16usVKU1emOvizP3VmYP/KwK7/ui31sdu33fFixYwEQlJPQgCII+IV7oQRAEfcKwTC4ppd2BU4FFgHNyzt8Y6jHUYWNqrape5oSBVk5xdUZaLC201EBV7U3N8oo86+fesnSNR/XUX0vCBHDeeeeVtqranTjxxBNL24oQq2qv6rGZUrzYeFV/qxw+hsbwe9g51XTj3buq5F5GXRyy3ruxxhtbleruxdh783PNNdcsfTY/1QGp5hWv1JkXZ+6ZR3Q8Xqy2HsfqBpx//vmlb6utthp0zCq+9KUvAe0Fsm1+VpUb9BJceQ5bz1xUlQ7CM0HZ/nU50Oucq94+muZhrKj7vnQbvNKzhJ5SWgQ4HdgD2BA4MKW0Yee9giAIgtFiOBL6VsATOecnAVJKFwPTgIeHcpDTTjuttI8++mig/ZdaJUpLhvXWW2+VPpWGveoi9sumTimVvDtVLKlyIJn0qqlIbewAp59+ursftFbDApxxxhmlrZK5offBxuxJPp5TCnzJxu5DlSPVq+DkpRitSxyljjiTKrVvPBlKqO5//Md/AO3PTeeSzU9N1GbOeZWGr7rqqo7jUEerPZs6idNzquqztDFVzTmPL3zhC6V91llnAf7cVE2hLtzQW/nqOXc9qV339xJ2VVU56pQCV0OMrboU+CvAx4qFIX3uqsB8+fu5Zl8bKaUZKaU5KaWxL+keBEHwHmLUwxZzzjOBmeAvLAqCIAhGhp5XiqaUtgX+Jef8l82/TwbIOX+9wz6vAL8DXq3aZgKyPP11PdB/1xTXs/DTb9c00tezes55hbqNhvNCXxR4DNgZeB64Gzgo5/xQzX5zulnCOlHot+uB/rumuJ6Fn367pvG6np5NLjnnd1NKxwA/pRG2+P26l3kQBEEwegzLhp5zvg64boTGEgRBEAyD8VgpOnMczjma9Nv1QP9dU1zPwk+/XdO4XM+Yps8NgiAIRo/I5RIEQdAnjOkLPaW0e0rp0ZTSEymlk8by3CNBSumjKaVbUkoPp5QeSin9XbN/2ZTSTSmlx5v/L1N3rIWJlNIiKaV7UkrXNv9eM6V0V/M5/SilNDihyUJMSmnplNJlKaVHUkrzUkrbTuRnlFI6vjnfHkwp/TCl9IGJ9IxSSt9PKb2cUnpQ+tznkRqc1ryu+1NKW4zfyKupuKZvNefc/SmlK1NKS8tnJzev6dGU0l+O1rjG7IXeJ7lf3gX+Mee8IbANcHTzGk4CZuec1wVmN/+eSPwdME/+PgX4Ts55HeAN4MhxGVXvnArckHPeANiUxrVNyGeUUloVOA7YMuc8hUZE2QFMrGd0PrD7gL6q57EHsG7z3wygc66C8eN8Bl/TTcCUnPMmNEK6TwZoviMOADZq7vO95vtwxBlLCb3kfsk5/xGw3C8Thpzzgpzzr5vtt2m8KFalcR2zmpvNAvYdnxEOnZTSZGAv4Jzm3wnYCbisuclEu56lgB2AcwFyzn/MOb/JBH5GNKLRPthc+/EhYAET6BnlnG8DBqbXrHoe04ALcoM7gaVTSiuPzUi7x7umnPONOWdLSHMnMLnZngZcnHP+Q875KeAJGu/DEWcsX+hd5X6ZKKSU1gA2B+4CJuWcrczJi8Ckit0WRr4LnABY5qPlgDdlYk6057Qm8ApwXtOMdE5KaQkm6DPKOT8P/D/gWRov8t8Cc5nYzwiqn0e/vCeOAK5vtsfsmsIp2gMppQ8DlwN/n3N+Sz/LjbChCRE6lFL6NPByznnueI9lBFkU2AI4I+e8OY1UE23mlQn2jJahIeGtCawCLMFgVX9CM5GeRzeklL5Mwzx70Vifeyxf6M8DH5W/Jzf7JhQppcVovMwvyjlf0ex+ydTC5v8vj9f4hshUYJ+U0tM0TGA70bA/L91U72HiPafngOdyznc1/76Mxgt+oj6jXYCncs6v5Jz/BFxB47lN5GcE1c9jQr8nUkqHAZ8GDs6tmPAxu6axfKHfDazb9M6/n4aT4JoxPP+wadqXzwXm5Zy/LR9dA0xvtqcDV4/12Hoh53xyznlyznkNGs/jZznng4FbgP2am02Y6wHIOb8IzE8prd/s2plGjv4J+YxomFq2SSl9qDn/7Hom7DNqUvU8rgEObUa7bAP8VkwzCzWpUcHtBGCfnPPv5aNrgANSSounlNak4fD91agMIuc8Zv+APWl4f38DfHkszz1C4/8EDdXwfuDe5r89adidZwOPAzcDy473WHu4th2Ba5vttZoT7gngUmDx8R7fEK9lM2BO8zldBSwzkZ8R8H+BR4AHgQuBxSfSMwJ+SMP+/ycaGtSRVc8DSDSi4X4DPEAjumfcr6HLa3qChq3c3g1nyvZfbl7To8AeozWuWCkaBEHQJ4RTNAiCoE+IF3oQBEGfEC/0IAiCPiFe6EEQBH1CvNCDIAj6hHihB0EQ9AnxQg+CIOgT4oUeBEHQJ/x/SVLLRRNjAhgAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<tigre.utilities.plotimg.plotimg instance at 0x7f6968a56368>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tigre.plotimg(np.hstack((imgFISTA,imgFISTA_hightv)),slice=32)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.15+"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
